<html>
<head>
  <script src="../OLLoader.js"></script>
  <script type="text/javascript">
    var map;

    function test_Control_Attribution_constructor (t) {
        t.plan( 2 );
    
        control = new OpenLayers.Control.Attribution();
        t.ok( control instanceof OpenLayers.Control.Attribution, "new OpenLayers.Control returns object" );
        t.eq( control.displayClass,  "olControlAttribution", "displayClass is correct" );
    }

    function test_Control_Attribution_setBaseLayer (t) {
        t.plan(1);

        map = new OpenLayers.Map("map");
        map.addControl(control);
        map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer!', isBaseLayer: true}));
        map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer 2!', isBaseLayer: true}));
        map.setBaseLayer(map.layers[1]);
        t.eq(control.div.innerHTML, 'My layer 2!', "Attribution correct with changed base layer");
    }

    function test_Control_Attribution_draw (t) {
        t.plan(3);

        control = new OpenLayers.Control.Attribution();
        map = new OpenLayers.Map("map");
        map.addControl(control);
        map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer!'}));
        t.eq(control.div.innerHTML, 'My layer!', "Attribution correct with one layer.");
        map.addLayer(new OpenLayers.Layer("name", {'attribution':'My layer 2!'}));
        t.eq(control.div.innerHTML, 'My layer!, My layer 2!', "Attribution correct with two layers.");
        control.separator = '|';
        control.template = "Map Copyright (c) 2012 by Foo Bar; ${layers}";
        map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer 3!'}));
        t.eq(control.div.innerHTML, 'Map Copyright (c) 2012 by Foo Bar; My layer!|My layer 2!|My layer 3!', "Attribution correct with three layers and diff seperator.");
    }

    function test_Control_Attribution_object (t) {
        t.plan(1);

        control = new OpenLayers.Control.Attribution();
        map = new OpenLayers.Map("map");
        map.addControl(control);

        control.layerTemplate = '<a href="${href}">${title}</a>';
        map.addLayer(new OpenLayers.Layer("name", {
            attribution: {
                title: "test",
                href: "http://test.org"
            }
        }));
        t.eq(control.div.innerHTML, '<a href="http://test.org">test</a>', "Attribution is correct with attribution object.");
    }

    function test_Control_Attribution_no_duplicates(t) {
        t.plan(2);

        map = new OpenLayers.Map("map");
        map.addLayer(new OpenLayers.Layer("Company A: 1",{'attribution':'company A'}));
        map.addLayer(new OpenLayers.Layer("Company A: 2",{'attribution':'company A'}));

        control = new OpenLayers.Control.Attribution();
        map.addControl(control);
        t.eq(control.div.innerHTML, 'company A', "Attribution not duplicated.");

        map.addLayer(new OpenLayers.Layer("Company B: 1",{'attribution':'company B'}));
        map.addLayer(new OpenLayers.Layer("Company A: 3",{'attribution':'company A'}));
        t.eq(control.div.innerHTML, 'company A, company B', "Attribution correct with four layers (3 with same attribution).");
    }
  </script>
</head>
<body>
    <div id="map" style="width: 1024px; height: 512px;"/>
</body>
</html>
